package com.dxf.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

/**
 * 功能 初始化时候把配置文件 .properties文件加载进内存
 *
 *
 * 需要将自定义的配置信息写入到properties文件中
 *      配置到相对于工程的properties文件夹下
 */
public class PropertiesUtils {

    public static Map<String,String> applicationMap = new HashMap();//把配置文件夹properties中的数据k,v存入数据

    public static  Map<String,String> userMap = new HashMap();//map.properties 对应的映射文件
    public static  Map<String,String> dbMap = new HashMap();//typeConverter.properties 对应的映射文件
    public static  Map<String,String> dbConfig = new HashMap();//dbconfig.properties 对应的映射文件

    static {
        File dir = new File("properties");//相对当前工程src的properties目录
        try {
            List<File> files = FileUtils.searchAllFile(new File(dir.getAbsolutePath()));//searchAllFile查询properties目录下所有文件
            for (File file : files) {
                if(file.getName().endsWith(".properties")) {
                    Properties prop = new Properties();
                    prop.load(new FileInputStream(file));
                    if ("map.properties".equals(file.getName() )){
                        userMap.putAll((Map)prop);
                    }
                    if ("typeConverter.properties".equals(file.getName())){
                        dbMap.putAll((Map)prop);
                    }
                    if ("dbconfig.properties".equals(file.getName())){
                        dbConfig.putAll((Map)prop);
                    }
                    applicationMap.putAll((Map) prop);//所有集合存到Map集合中
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        PropertiesUtils.applicationMap.forEach((k, v)->{
            System.out.println(k+"--"+v);
        });
    }
}
